package com.gzc.just.play.last.war.loginserver.config;

import com.gzc.just.play.last.war.common.annotation.MessageDeserializer;
import com.gzc.just.play.last.war.protobuf.gc.gctols.GCToLS;
import org.springframework.stereotype.Component;

/**
 * Login Server 消息反序列化器配置
 * 
 * 使用声明式注解方式配置所有消息的反序列化器。
 * 
 * 优点：
 * 1. 集中配置：所有消息类型在一个文件中定义，易于管理
 * 2. 高内聚：无需为每个消息类型创建单独的类
 * 3. 易扩展：添加压缩/加密只需修改注解属性
 * 4. 减少代码量：无需重复的deserialize()实现
 * 
 * 使用方式：
 * - 每个@MessageDeserializer注解定义一个消息类型的反序列化器
 * - messageId: 消息ID
 * - messageType: Protobuf消息类
 * - module: 模块名称（用于隔离不同服务器的消息）
 * - compression: 是否启用解压缩
 * - encryption: 是否启用解密
 * 
 * 示例：如果以后需要对所有消息启用压缩，只需添加 compression = true
 */
@Component
@MessageDeserializer(
    messageId = 40961, // eMsgToLSFromGC_AskLogin
    messageType = GCToLS.AskLogin.class,
    module = "login-server",
    name = "AskLoginDeserializer"
)
public class LoginServerDeserializerConfig {
    // 无需实现任何方法
    // 扫描器会自动根据注解创建GenericProtobufDeserializer实例
}
